package a2022.a20220523;

import java.util.*;

/**
 * @author lenovo
 * @date 2022/5/23
 */
public class a {
    public static void main(String[] args) {
        //[[1,2,3],[0,0,4],[7,6,5]]
        List<List<Integer>> forest = new ArrayList<List<Integer>>();
        forest.add(new ArrayList<Integer>() {{
            add(1);
            add(2);
            add(3);
        }});
        forest.add(new ArrayList<Integer>() {{
            add(0);
            add(0);
            add(4);
        }});
        forest.add(new ArrayList<Integer>() {{
            add(7);
            add(6);
            add(5);
        }});
        int i = cutOffTree(forest);


    }

    public static int cutOffTree(List<List<Integer>> forest) {
        // 竖排长度
        int m = forest.size();
        // 横排长度
        int n = forest.get(0).size();

        /**
         * 你需要按照树的高度从低向高砍掉所有的树，每砍过一颗树，该单元格的值变为 1（即变为地面）。
         * 你将从 (0, 0) 点开始工作，返回你砍完所有树需要走的最小步数。 如果你无法砍完所有的树，返回 -1 。
         */
        // 将矩阵从0.0 -> m.n处就行编号既0->m*n号
        // 设置一个数组int[x][y] x存当前矩阵格的数字 y存编号 然后排序
        int[][] ints = new int[m * n][2];
        for (int i = 0; i < m * n; i++) {
            ints[i][0] = i < n ? forest.get(0).get(i) : forest.get(i / n).get(i % n);
            ints[i][1] = i;
        }
        Arrays.sort(ints, (o1, o2) -> o1[0] - o2[0]);
        // 遍历拿到起始值位置
        if (ints[0][0] == 0) return -1;

        System.out.println();
        return 0;
    }




}

















